home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / AIIGSIncludes / M16.SANE < prev    next >
Encoding:
Text File  |  1990-05-03  |  18.1 KB  |  903 lines  |  [TEXT/MPS ]

  1. ; File:  M16.SANE
  2. ;
  3. ;
  4. ; Copyright Apple Computer, Inc. 1986-90
  5. ; All Rights Reserved
  6. ;
  7. ;
  8.  MACRO
  9. &lab _SANEBootInit
  10. &lab ldx #$010A
  11.      jsl $E10000
  12.  MEND
  13.  MACRO
  14. &lab _SANEStartUp
  15. &lab ldx #$020A
  16.      jsl $E10000
  17.  MEND
  18.  MACRO
  19. &lab _SANEShutDown
  20. &lab ldx #$030A
  21.      jsl $E10000
  22.  MEND
  23.  MACRO
  24. &lab _SANEVersion
  25. &lab ldx #$040A
  26.      jsl $E10000
  27.  MEND
  28.  MACRO
  29. &lab _SANEReset
  30. &lab ldx #$050A
  31.      jsl $E10000
  32.  MEND
  33.  MACRO
  34. &lab _SANEStatus
  35. &lab ldx #$060A
  36.      jsl $E10000
  37.  MEND
  38.  MACRO
  39. &lab _SANEFP816
  40. &lab ldx #$090A
  41.      jsl $E10000
  42.  MEND
  43.  MACRO
  44. &lab _SANEDecStr816
  45. &lab ldx #$0A0A
  46.      jsl $E10000
  47.  MEND
  48.  MACRO
  49. &lab _SANEElems816
  50. &lab ldx #$0B0A
  51.      jsl $E10000
  52.  MEND
  53. ;-----------------------------------------------------------
  54. ; Addition.
  55. ;-----------------------------------------------------------
  56.         MACRO
  57. &lab    FADDX
  58. &lab    FOPRF   FFEXT+FOADD
  59.         MEND
  60.  
  61.         MACRO
  62. &lab    FADDD
  63. &lab    FOPRF   FFDBL+FOADD
  64.         MEND
  65.  
  66.         MACRO
  67. &lab    FADDS
  68. &lab    FOPRF   FFSGL+FOADD
  69.         MEND
  70.  
  71.         MACRO
  72. &lab    FADDC
  73. &lab    FOPRF   FFCOMP+FOADD
  74.         MEND
  75.  
  76.         MACRO
  77. &lab    FADDI
  78. &lab    FOPRF   FFINT+FOADD
  79.         MEND
  80.  
  81.         MACRO
  82. &lab    FADDL
  83. &lab    FOPRF   FFLNG+FOADD
  84.         MEND
  85.  
  86. ;-----------------------------------------------------------
  87. ; Subtraction.
  88. ;-----------------------------------------------------------
  89.         MACRO
  90. &lab    FSUBX
  91. &lab    FOPRF   FFEXT+FOSUB
  92.         MEND
  93.  
  94.         MACRO
  95. &lab    FSUBD
  96. &lab    FOPRF   FFDBL+FOSUB
  97.         MEND
  98.  
  99.         MACRO
  100. &lab    FSUBS
  101. &lab    FOPRF   FFSGL+FOSUB
  102.         MEND
  103.  
  104.         MACRO
  105. &lab    FSUBC
  106. &lab    FOPRF   FFCOMP+FOSUB
  107.         MEND
  108.  
  109.         MACRO
  110. &lab    FSUBI
  111. &lab    FOPRF   FFINT+FOSUB
  112.         MEND
  113.  
  114.         MACRO
  115. &lab    FSUBL
  116. &lab    FOPRF   FFLNG+FOSUB
  117.         MEND
  118.  
  119. ;-----------------------------------------------------------
  120. ; Multiplication.
  121. ;-----------------------------------------------------------
  122.         MACRO
  123. &lab    FMULX
  124. &lab    FOPRF   FFEXT+FOMUL
  125.         MEND
  126.  
  127.         MACRO
  128. &lab    FMULD
  129. &lab    FOPRF   FFDBL+FOMUL
  130.         MEND
  131.  
  132.         MACRO
  133. &lab    FMULS
  134. &lab    FOPRF   FFSGL+FOMUL
  135.         MEND
  136.  
  137.         MACRO
  138. &lab    FMULC
  139. &lab    FOPRF   FFCOMP+FOMUL
  140.         MEND
  141.  
  142.         MACRO
  143. &lab    FMULI
  144. &lab    FOPRF   FFINT+FOMUL
  145.         MEND
  146.  
  147.         MACRO
  148. &lab    FMULL
  149. &lab    FOPRF   FFLNG+FOMUL
  150.         MEND
  151.  
  152. ;-----------------------------------------------------------
  153. ; Division.
  154. ;-----------------------------------------------------------
  155.         MACRO
  156. &lab    FDIVX
  157. &lab    FOPRF   FFEXT+FODIV
  158.         MEND
  159.  
  160.         MACRO
  161. &lab    FDIVD
  162. &lab    FOPRF   FFDBL+FODIV
  163.         MEND
  164.  
  165.         MACRO
  166. &lab    FDIVS
  167. &lab    FOPRF   FFSGL+FODIV
  168.         MEND
  169.  
  170.         MACRO
  171. &lab    FDIVC
  172. &lab    FOPRF   FFCOMP+FODIV
  173.         MEND
  174.  
  175.         MACRO
  176. &lab    FDIVI
  177. &lab    FOPRF   FFINT+FODIV
  178.         MEND
  179.  
  180.         MACRO
  181. &lab    FDIVL
  182. &lab    FOPRF   FFLNG+FODIV
  183.         MEND
  184.  
  185. ;-----------------------------------------------------------
  186. ; Square root.
  187. ;-----------------------------------------------------------
  188.         MACRO
  189. &lab    FSQRTX
  190. &lab    FOPRF  FOSQRT
  191.         MEND
  192.  
  193. ;-----------------------------------------------------------
  194. ; Round to integer, according to the current rounding mode.
  195. ;-----------------------------------------------------------
  196.         MACRO
  197. &lab    FRINTX
  198. &lab    FOPRF  FORTI
  199.         MEND
  200.  
  201. ;-----------------------------------------------------------
  202. ; Truncate to integer, using round toward zero.
  203. ;-----------------------------------------------------------
  204.         MACRO
  205. &lab    FTINTX
  206. &lab    FOPRF   FOTTI
  207.         MEND
  208.  
  209. ;-----------------------------------------------------------
  210. ; Remainder.  
  211. ;-----------------------------------------------------------
  212.         MACRO
  213. &lab    FREMX
  214. &lab    FOPRF   FFEXT+FOREM
  215.         MEND
  216.  
  217.         MACRO
  218. &lab    FREMD
  219. &lab    FOPRF   FFDBL+FOREM
  220.         MEND
  221.  
  222.         MACRO
  223. &lab    FREMS
  224. &lab    FOPRF   FFSGL+FOREM
  225.         MEND
  226.  
  227.         MACRO
  228. &lab    FREMC
  229. &lab    FOPRF   FFCOMP+FOREM
  230.         MEND
  231.  
  232.         MACRO
  233. &lab    FREMI
  234. &lab    FOPRF   FFINT+FOREM
  235.         MEND
  236.  
  237.         MACRO
  238. &lab    FREML
  239. &lab    FOPRF   FFLNG+FOREM
  240.         MEND
  241.  
  242. ;-----------------------------------------------------------
  243. ; Logb. 
  244. ;-----------------------------------------------------------
  245.         MACRO
  246. &lab    FLOGBX
  247. &lab    FOPRF   FOLOGB
  248.         MEND
  249.  
  250. ;-----------------------------------------------------------
  251. ; Scalb.  
  252. ;-----------------------------------------------------------
  253.         MACRO
  254. &lab    FSCALBX
  255. &lab    FOPRF   FOSCALB
  256.         MEND
  257.  
  258. ;-----------------------------------------------------------
  259. ; Copy-sign.
  260. ;-----------------------------------------------------------
  261.         MACRO
  262. &lab    FCPYSGNX
  263. &lab    FOPRF   FFEXT+FOCPYSGN
  264.         MEND
  265.  
  266.         MACRO
  267. &lab    FCPYSGND
  268. &lab    FOPRF   FFDBL+FOCPYSGN
  269.         MEND
  270.  
  271.         MACRO
  272. &lab    FCPYSGNS
  273. &lab    FOPRF   FFSGL+FOCPYSGN
  274.         MEND
  275.  
  276.         MACRO
  277. &lab    FCPYSGNC
  278. &lab    FOPRF   FFCOMP+FOCPYSGN
  279.         MEND
  280.  
  281.         MACRO
  282. &lab    FCPYSGNI
  283. &lab    FOPRF   FFINT+FOCPYSGN
  284.         MEND
  285.  
  286.         MACRO
  287. &lab    FCPYSGNL
  288. &lab    FOPRF   FFLNG+FOCPYSGN
  289.         MEND
  290.  
  291. ;-----------------------------------------------------------
  292. ; Negate.
  293. ;-----------------------------------------------------------
  294.         MACRO
  295. &lab    FNEGX
  296. &lab    FOPRF   FONEG
  297.         MEND
  298.  
  299. ;-----------------------------------------------------------
  300. ; Absolute value.
  301. ;-----------------------------------------------------------
  302.         MACRO
  303. &lab    FABSX
  304. &lab    FOPRF   FOABS
  305.         MEND
  306.  
  307. ;-----------------------------------------------------------
  308. ; Next-after.  NOTE:  both operands are of the
  309. ; the same format, as specified by the usual suffix.
  310. ;-----------------------------------------------------------
  311.         MACRO
  312. &lab    FNEXTS
  313. &lab    FOPRF   FFSGL+FONEXT
  314.         MEND
  315.  
  316.         MACRO
  317. &lab    FNEXTD
  318. &lab    FOPRF   FFDBL+FONEXT
  319.         MEND
  320.  
  321.         MACRO
  322. &lab    FNEXTX
  323. &lab    FOPRF   FFEXT+FONEXT
  324.         MEND
  325.  
  326. ;-----------------------------------------------------------
  327. ; Conversion to extended.
  328. ;-----------------------------------------------------------
  329.         MACRO
  330. &lab    FX2X
  331. &lab    FOPRF   FFEXT+FOZ2X
  332.         MEND
  333.  
  334.         MACRO
  335. &lab    FD2X
  336. &lab    FOPRF   FFDBL+FOZ2X
  337.         MEND
  338.  
  339.         MACRO
  340. &lab    FS2X
  341. &lab    FOPRF   FFSGL+FOZ2X
  342.         MEND
  343.  
  344.         MACRO                           ; 16-bit integer, by address
  345. &lab    FI2X
  346. &lab    FOPRF   FFINT+FOZ2X
  347.         MEND
  348.  
  349.         MACRO                           ; 32-bit integer, by address
  350. &lab    FL2X
  351. &lab    FOPRF   FFLNG+FOZ2X
  352.         MEND
  353.  
  354.         MACRO
  355. &lab    FC2X
  356. &lab    FOPRF   FFCOMP+FOZ2X
  357.         MEND
  358.  
  359. ;-----------------------------------------------------------
  360. ; Conversion from extended.
  361. ;-----------------------------------------------------------
  362.         MACRO
  363. &lab    FX2D
  364. &lab    FOPRF   FFDBL+FOX2Z
  365.         MEND
  366.  
  367.         MACRO
  368. &lab    FX2S
  369. &lab    FOPRF   FFSGL+FOX2Z
  370.         MEND
  371.  
  372.         MACRO
  373. &lab    FX2I
  374. &lab    FOPRF   FFINT+FOX2Z
  375.         MEND
  376.  
  377.         MACRO
  378. &lab    FX2L
  379. &lab    FOPRF   FFLNG+FOX2Z
  380.         MEND
  381.  
  382.         MACRO
  383. &lab    FX2C
  384. &lab    FOPRF   FFCOMP+FOX2Z
  385.         MEND
  386.  
  387. ;-----------------------------------------------------------
  388. ; Binary to decimal conversion.
  389. ;-----------------------------------------------------------
  390.         MACRO
  391. &lab    FX2DEC
  392. &lab    FOPRF   FFEXT+FOB2D
  393.         MEND
  394.  
  395.         MACRO
  396. &lab    FD2DEC
  397. &lab    FOPRF   FFDBL+FOB2D
  398.         MEND
  399.  
  400.         MACRO
  401. &lab    FS2DEC
  402. &lab    FOPRF   FFSGL+FOB2D
  403.         MEND
  404.  
  405.         MACRO
  406. &lab    FC2DEC
  407. &lab    FOPRF   FFCOMP+FOB2D
  408.         MEND
  409.  
  410.         MACRO
  411. &lab    FI2DEC
  412. &lab    FOPRF   FFINT+FOB2D
  413.         MEND
  414.  
  415.         MACRO
  416. &lab    FL2DEC
  417. &lab    FOPRF   FFLNG+FOB2D
  418.         MEND
  419.  
  420. ;-----------------------------------------------------------
  421. ; Decimal to binary conversion.
  422. ;-----------------------------------------------------------
  423.         MACRO
  424. &lab    FDEC2X
  425. &lab    FOPRF   FFEXT+FOD2B
  426.         MEND
  427.  
  428.         MACRO
  429. &lab    FDEC2D
  430. &lab    FOPRF   FFDBL+FOD2B
  431.         MEND
  432.  
  433.         MACRO
  434. &lab    FDEC2S
  435. &lab    FOPRF   FFSGL+FOD2B
  436.         MEND
  437.  
  438.         MACRO
  439. &lab    FDEC2C
  440. &lab    FOPRF   FFCOMP+FOD2B
  441.         MEND
  442.  
  443.         MACRO
  444. &lab    FDEC2I
  445. &lab    FOPRF   FFINT+FOD2B
  446.         MEND
  447.  
  448.         MACRO
  449. &lab    FDEC2L
  450. &lab    FOPRF   FFLNG+FOD2B
  451.         MEND
  452.  
  453. ;-----------------------------------------------------------
  454. ; Compare, not signaling invalid on unordered.
  455. ;-----------------------------------------------------------
  456.         MACRO
  457. &lab    FCMPX
  458. &lab    FOPRF   FFEXT+FOCMP
  459.         MEND
  460.  
  461.         MACRO
  462. &lab    FCMPD
  463. &lab    FOPRF   FFDBL+FOCMP
  464.         MEND
  465.  
  466.         MACRO
  467. &lab    FCMPS
  468. &lab    FOPRF   FFSGL+FOCMP
  469.         MEND
  470.  
  471.         MACRO
  472. &lab    FCMPC
  473. &lab    FOPRF   FFCOMP+FOCMP
  474.         MEND
  475.  
  476.         MACRO
  477. &lab    FCMPI
  478. &lab    FOPRF   FFINT+FOCMP
  479.         MEND
  480.  
  481.         MACRO
  482. &lab    FCMPL
  483. &lab    FOPRF   FFLNG+FOCMP
  484.         MEND
  485.  
  486. ;-----------------------------------------------------------
  487. ; Compare, signaling invalid on unordered.
  488. ;-----------------------------------------------------------
  489.         MACRO
  490. &lab    FCPXX
  491. &lab    FOPRF   FFEXT+FOCPX
  492.         MEND
  493.  
  494.         MACRO
  495. &lab    FCPXD
  496. &lab    FOPRF   FFDBL+FOCPX
  497.         MEND
  498.  
  499.         MACRO
  500. &lab    FCPXS
  501. &lab    FOPRF   FFSGL+FOCPX
  502.         MEND
  503.  
  504.         MACRO
  505. &lab    FCPXC
  506. &lab    FOPRF   FFCOMP+FOCPX
  507.         MEND
  508.        
  509.         MACRO
  510. &lab    FCPXI
  511. &lab    FOPRF   FFINT+FOCPX
  512.         MEND
  513.  
  514.         MACRO
  515. &lab    FCPXL
  516. &lab    FOPRF   FFLNG+FOCPX
  517.         MEND
  518.  
  519. ;-----------------------------------------------------------
  520. ; The following macros define a set of so-called floating
  521. ; branches.  They presume that the appropriate compare 
  522. ; operation, macro FCMPz or FCPXz, precedes.
  523. ;----------------------------------------------------------
  524.         MACRO                           ; branch equal
  525. &lab    FBEQ    &N1
  526. &lab    BEQ     &N1
  527.         MEND
  528.        
  529.         MACRO                           ; branch less
  530. &lab    FBLT    &N1
  531. &lab    BMI     &N1
  532.         MEND
  533.        
  534.         MACRO                           ; branch less or equal
  535. &lab    FBLE    &N1
  536. &lab    BMI     &N1
  537.         BEQ     &N1
  538.         MEND
  539.        
  540.         MACRO                           ; branch greater
  541. &lab    FBGT    &N1
  542. &lab    BVS     &N1
  543.         MEND
  544.        
  545.         MACRO                           ; branch greater or equal
  546. &lab    FBGE    &N1
  547. &lab    BVS     &N1
  548.         BEQ     &N1
  549.         MEND
  550.        
  551.         MACRO                           ; branch less or unordered
  552. &lab    FBULT   &N1
  553. &lab    BMI     &N1
  554.         BVS     *+4
  555.         BNE     &N1
  556.         MEND
  557.        
  558.         MACRO                           ; branch unordered, less, or equal
  559. &lab    FBULE   &N1
  560. &lab    BMI     &N1
  561.         BEQ     &N1
  562.         BVC     &N1
  563.         MEND
  564.        
  565.         MACRO                           ; branch unordered or greater
  566. &lab    FBUGT   &N1
  567. &lab    BVS     &N1
  568.         BMI     *+4
  569.         BNE     &N1
  570.         MEND
  571.        
  572.         MACRO                           ; branch unordered, greater, or equal
  573. &lab    FBUGE   &N1
  574. &lab    BVS     &N1
  575.         BEQ     &N1
  576.         BPL     &N1
  577.         MEND
  578.        
  579.         MACRO                           ; branch unordered
  580. &lab    FBU     &N1
  581. &lab    BVS     *+6
  582.         BMI     *+4
  583.         BNE     &N1 
  584.         MEND
  585.        
  586.         MACRO                           ; branch ordered
  587. &lab    FBO     &N1
  588. &lab    BMI     &N1
  589.         BVS     &N1
  590.         BEQ     &N1
  591.         MEND
  592.        
  593.         MACRO                           ; branch not equal
  594. &lab    FBNE    &N1
  595. &lab    BMI     &N1
  596.         BVS     &N1
  597.         BNE     &N1
  598.         MEND
  599.        
  600.         MACRO                           ; branch unordered or equal
  601. &lab    FBUE    &N1
  602. &lab    BEQ     &N1
  603.         BMI     *+4
  604.         BVC     &N1
  605.         MEND
  606.        
  607.         MACRO                           ; branch less or greater
  608. &lab    FBLG    &N1
  609. &lab    BMI     &N1
  610.         BVS     &N1
  611.         MEND
  612.  
  613.         MACRO
  614. &lab    FCLASSS
  615. &lab    FOPRF   FFSGL+FOCLASS
  616.         MEND
  617.  
  618.         MACRO
  619. &lab    FCLASSD
  620. &lab    FOPRF   FFDBL+FOCLASS
  621.         MEND
  622.  
  623.         MACRO
  624. &lab    FCLASSX
  625. &lab    FOPRF   FFEXT+FOCLASS
  626.         MEND
  627.  
  628.         MACRO
  629. &lab    FCLASSC
  630. &lab    FOPRF   FFCOMP+FOCLASS
  631.         MEND
  632.  
  633.         MACRO
  634. &lab    FCLASSI
  635. &lab    FOPRF   FFINT+FOCLASS
  636.         MEND
  637.  
  638.         MACRO
  639. &lab    FCLASSL
  640. &lab    FOPRF   FFLNG+FOCLASS
  641.         MEND
  642.  
  643. ;-----------------------------------------------------------
  644. ; The following macros provide branches based on the 
  645. ; the result of a FCLASSz macro.
  646. ;-----------------------------------------------------------
  647.         MACRO                           ; branch signaling NaN
  648. &lab    FBSNAN  &N1
  649. &lab    TXA
  650.         ASL     A
  651.         CMP     #2*FCSNAN
  652.         BEQ     &N1
  653.         MEND
  654.  
  655.         MACRO                           ; branch quiet NaN
  656. &lab    FBQNAN  &N1
  657. &lab    TXA
  658.         ASL     A
  659.         CMP     #2*FCQNAN
  660.         BEQ     &N1
  661.         MEND
  662.  
  663.         MACRO                           ; branch infinite
  664. &lab    FBINF   &N1
  665. &lab    TXA
  666.         ASL     A
  667.         CMP     #2*FCINF
  668.         BEQ     &N1
  669.         MEND
  670.  
  671.         MACRO                           ; branch zero
  672. &lab    FBZERO  &N1
  673. &lab    TXA
  674.         ASL     A
  675.         CMP     #2*FCZERO
  676.         BEQ     &N1
  677.         MEND
  678.  
  679.         MACRO                           ; branch normal
  680. &lab    FBNORM  &N1
  681. &lab    TXA
  682.         ASL     A
  683.         BEQ     &N1
  684.         MEND
  685.  
  686.         MACRO                           ; branch denormal
  687. &lab    FBDENORM &N1
  688. &lab    TXA
  689.         ASL     A
  690.         CMP     #2*FCDENORM
  691.         BEQ     &N1
  692.         MEND
  693.  
  694.         MACRO                           ; branch non-zero num (norm or denorm)
  695. &lab    FBNZENUM &N1
  696. &lab    TXA
  697.         XBA
  698.         ASL     A
  699.         BCC     &N1
  700.         MEND
  701.        
  702.         MACRO                           ; branch number (zero, norm, or denorm)
  703. &lab    FBNUM   &N1
  704. &lab    TXA
  705.         INC     A
  706.         XBA
  707.         ASL     A
  708.         BCC     &N1
  709.         MEND
  710.        
  711.         MACRO                           ; branch minus sign
  712. &lab    FBMINUS &N1
  713. &lab    BMI     &N1
  714.         MEND
  715.  
  716.         MACRO                           ; branch plus sign
  717. &lab    FBPLUS  &N1
  718. &lab    BPL     &N1
  719.         MEND
  720.  
  721. ;-----------------------------------------------------------
  722. ; Get and set environment.
  723. ;-----------------------------------------------------------
  724.         MACRO
  725. &lab    FGETENV
  726. &lab    FOPRF   FOGETENV
  727.         MEND
  728.  
  729.         MACRO
  730. &lab    FSETENV
  731. &lab    FOPRF   FOSETENV
  732.         MEND
  733.  
  734. ;-----------------------------------------------------------
  735. ; Test and set exception. 
  736. ;-----------------------------------------------------------
  737.         MACRO
  738. &lab    FTESTXCP
  739. &lab    FOPRF   FOTESTXCP
  740.         MEND
  741.  
  742.         MACRO
  743. &lab    FSETXCP
  744. &lab    FOPRF   FOSETXCP
  745.         MEND
  746.  
  747. ;----------------------------------------------------------
  748. ; Procedure entry and exit.
  749. ;----------------------------------------------------------
  750.         MACRO
  751. &lab    FPROCENTRY
  752. &lab    FOPRF   FOPROCENTRY
  753.         MEND
  754.  
  755.         MACRO
  756. &lab    FPROCEXIT
  757. &lab    FOPRF   FOPROCEXIT
  758.         MEND
  759.  
  760. ;-----------------------------------------------------------
  761. ; Get and set halt vector.
  762. ;-----------------------------------------------------------
  763.         MACRO
  764. &lab    FGETHV
  765. &lab    FOPRF   FOGETHV
  766.         MEND
  767.  
  768.         MACRO
  769. &lab    FSETHV
  770. &lab    FOPRF   FOSETHV
  771.         MEND
  772.        
  773. ;-----------------------------------------------------------
  774. ; Elementary function macros.
  775. ;-----------------------------------------------------------
  776.         MACRO                           ; natural (base-e) log
  777. &lab    FLNX
  778. &lab    FOPRE   FOLNX
  779.         MEND
  780.  
  781.         MACRO                           ; base-2 log
  782. &lab    FLOG2X
  783. &lab    FOPRE   FOLOG2X
  784.         MEND
  785.  
  786.         MACRO                           ; ln (1 + x)
  787. &lab    FLN1X
  788. &lab    FOPRE   FOLN1X
  789.         MEND
  790.  
  791.         MACRO                           ; log2 (1 + x)
  792. &lab    FLOG21X
  793. &lab    FOPRE   FOLOG21X
  794.         MEND
  795.  
  796.         MACRO                           ; base-e exponential
  797. &lab    FEXPX
  798. &lab    FOPRE   FOEXPX
  799.         MEND
  800.  
  801.         MACRO                           ; base-2 exponential
  802. &lab    FEXP2X
  803. &lab    FOPRE   FOEXP2X
  804.         MEND
  805.  
  806.         MACRO                           ; exp (x) - 1
  807. &lab    FEXP1X
  808. &lab    FOPRE   FOEXP1X
  809.         MEND
  810.  
  811.         MACRO                           ; exp2 (x) - 1
  812. &lab    FEXP21X
  813. &lab    FOPRE   FOEXP21X
  814.         MEND
  815.  
  816.         MACRO                           ; integer exponential
  817. &lab    FXPWRI
  818. &lab    FOPRE   FOXPWRI
  819.         MEND
  820.  
  821.         MACRO                           ; general exponential
  822. &lab    FXPWRY
  823. &lab    FOPRE   FOXPWRY
  824.         MEND
  825.  
  826.         MACRO                           ; compound
  827. &lab    FCOMPOUND
  828. &lab    FOPRE   FOCOMPOUND
  829.         MEND
  830.  
  831.         MACRO                           ; annuity
  832. &lab    FANNUITY
  833. &lab    FOPRE   FOANNUITY
  834.         MEND
  835.        
  836.         MACRO                           ; arctangent
  837. &lab    FATANX
  838. &lab    FOPRE   FOATANX
  839.         MEND
  840.  
  841.         MACRO                           ; sine
  842. &lab    FSINX
  843. &lab    FOPRE   FOSINX
  844.         MEND
  845.  
  846.         MACRO                           ; cosine
  847. &lab    FCOSX
  848. &lab    FOPRE   FOCOSX
  849.         MEND
  850.  
  851.         MACRO                           ; tangent
  852. &lab    FTANX
  853. &lab    FOPRE   FOTANX
  854.         MEND
  855.        
  856.         MACRO                           ; random number generator
  857. &lab    FRANDX
  858. &lab    FOPRE   FORANDX
  859.         MEND
  860.        
  861. ;-----------------------------------------------------------
  862. ; Scanner and formatter function macros.
  863. ;-----------------------------------------------------------
  864.         MACRO                           ; Pascal string to decimal record
  865. &lab    FPSTR2DEC
  866. &lab    FOPRD   FOPSTR2DEC
  867.         MEND
  868.        
  869.         MACRO                           ; C string to decimal record
  870. &lab    FCSTR2DEC
  871. &lab    FOPRD   FOCSTR2DEC
  872.         MEND
  873.        
  874.         MACRO                           ; decimal record to (Pascal) string
  875. &lab    FDEC2STR
  876. &lab    FOPRD   FODEC2STR
  877.         MEND
  878.  
  879. ;-----------------------------------------------------------
  880. ; Auxiliary macros.
  881. ;-----------------------------------------------------------
  882.         MACRO                           ; call FP
  883. &lab    FOPRF   &N1
  884. &lab    PEA     &N1
  885.         LDX     #SANEtsNum+256*FPNum
  886.         JSL     $E10000
  887.         MEND
  888.  
  889.         MACRO                           ; call DecStr
  890. &lab    FOPRD   &N1
  891. &lab    PEA     &N1
  892.         LDX     #SANEtsNum+256*DecStrNum
  893.         JSL     $E10000
  894.         MEND
  895.  
  896.         MACRO                           ; call Elems
  897. &lab    FOPRE   &N1
  898. &lab    PEA     &N1
  899.         LDX     #SANEtsNum+256*ElemNum
  900.         JSL     $E10000
  901.         MEND
  902.  
  903.